package com.liangtian.mdm.dm.jsp.dao;

import com.liangtian.mdm.base.BaseDao;
import com.liangtian.mdm.dm.jsp.model.JspAction;
import org.springframework.stereotype.Repository;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@SuppressWarnings("rawtypes")
@Repository
public interface JspActionDao extends BaseDao<JspAction> {

    List<Map<String, Object>> queryList(Map map);


    // 定制化开发 ,走工作流的查询界面的走这个查询方法
    List<Map<String, Object>> queryListModelFlow(Map map);


    //获取所有该表下待分发的数据
    List<Map<String, Object>> queryTabDisList(Map map);

    //针对非动态模型查询分页数据
    List<Map<String, Object>> queryNoTabList(Map map);


    List<Map<String, Object>> queryUserList(Map map);

    List<Map<String, Object>> queryUpdateList(Map map);

    List<Map<String, Object>> queryApproveList(Map map);

    List<Map<String, Object>> querySubTableList(Map map);

    //根据ID删除主表需要删除的数据
    int deleteByPk(Map map);

    //根据主表ID去变更表根据orgid删除变更表里的数据
    int deleteByOrgPk(Map map);


    Map<String, Object> queryOne(Map map);

    Map<String, Object> queryDetail(Map map);

    List<Map<String, Object>> selectTable(Map map);

    String selectIdBySeq(Map<String, String> cond);

    List<String> selectSubDataIdList(Map<String, Object> map);

    List<Map<String, Object>> selectSubDatasList(Map<String, Object> map);

    int queryModelCount(Map<String, Object> param);

    int checkcolumnName(Map map);

    /**
     * <p>TODO 中国万达定制化唯一校验的方法</p>
     * <p>@param map
     * <p>@return </p>
     *
     * @author : xiaoliu
     * @date :2017年9月20日上午9:31:05
     */
    int checkcolumnNameToWanDa(Map map);

    int checkcolumnNameZd(Map map);

    String queryMaxLsm(Map map);

    void updateCodeFromAuto(Map map);

    Map<String, Object> queryDynModelApproveDetail(Map map);

    List<Map<String, Object>> queryDynModelDisDataList(Map map);

    /**
     * <p>TODO  根据modelId,sysCode条件下获取待分发的数据</p>
     * <p>@param map （modelId 模型Id  sysCode  目标系统code）
     * <p>@return List<Map<String, String>> </p>
     *
     * @author : xiaoliu
     * @date :2017年6月14日上午9:43:49
     */
    public List<Map<String, Object>> getDistributedData(Map map);

    public List<Map<String, Object>> getDistributedDataSinotrans(Map map);

    /**
     * <p>TODO  根据modelId,flag,errorText,idLst变更批量分发的数据</p>
     * <p>@param map （modelId,flag,errorText,idLst）
     * <p>@return int </p>
     *
     * @author : xiaoliu
     * @date :2017年6月14日上午9:43:49
     */
    int batchDisTableFlag(Map map);

    int batchDisTableFlag2(Map map);

    /**
     * 查询表或视图的全部字段
     *
     * @param tableName
     * @return
     */
    public List<Map<String, Object>> queryAlltabcolumns(HashMap dmap);

    /**
     * 提交时，自定义校验方法，通过存储过程
     *
     * @param map
     * @return
     */
    public void checkOnlyCustomize(Map<String, Object> map);
}
